﻿using System.Collections.Generic;

namespace SharpTag.ID3
{
    /// <summary>
    /// Represents an abstract factory used to generate different types of Frames in ID3v2Tags.
    /// </summary>
    public abstract class AbstractFrameFactory
    {
        /// <summary>
        /// Creates a new empty <see cref="IFrame"/> object.
        /// </summary>
        /// <returns>An empty <see cref="IFrame"/> object</returns>
        public abstract IFrame CreateID3TagFrame();

        /// <summary>
        /// Parses raw frames bytes into a Generic collection of <see cref="IFrame"/> objects.
        /// </summary>
        /// <param name="frameBytes"></param>
        /// <returns>A generic list of <see cref="IFrame"/> objects.</returns>
        public abstract List<IFrame> ParseID3TagFrames(byte[] frameBytes);
    }
}
